developer machines ("localhost") -> single development test server ("devServer") -> QA server ("qaServer") -> production server ("prodServer")
The current licensing system requires keys for "devServer", "qaServer" and "prodServer" if they are accessed through non local browsers (note; 'devServer' and 'qaServer' keys will be provided free), this poses a problem since it is not acceptable to change the "LicenseKey" property in source code for each server.
The solution is reasonably simple and it uses a mechanism that is likely to be used already, the "web.config" file. Since each server should have a unique web.config file, storing the license keys in there makes sense.
Store the license key in the web.config in the <appSettings> section (if it doesn't exist, create it after the system.web section).
Eg;
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> ........... </system.web> <appSettings> <add key="Keyoti-SearchEngine-LicenseKey" value="123456789"/> </appSettings> </configuration>
Now set each server's web.config accordingly, remember web.config files should not be deployed to a server with an application (because they are unique).